package com.wjw.java.basic.operator_;

/**
 * 算术运算符：
 * ----------------------------------------------------------
 * 加：+
 * 减：-
 * 乘：*
 * 除：/
 * 取模(取余)：%     11%9     余数为2
 * ----------------------------------------------------------
 * ++i：
 * i++：
 * --j：
 * j--：
 * 注：单独使用前++或后++,前--或后--时,没有任何区别
 * 如果和其他操作混合使用时,如赋值混合或打印,就有区别
 * A.如果是【前++、前--】，那么【该变量立马+1、-1】，然后拿着结果进行使用。 【先加、减后用】
 * B.如果是【后++、后--】，那么先使用变量本来的数值，【然后再让变量+1】。   【先用后加、减】
 * ----------------------------------------------------------
 * 字符串相加：str1 + str2
 * ----------------------------------------------------------
 */
public class OperatorArith {
    public static void main(String[] args) {
        //单独使用无区别
        int num = 10;
        ++num;//11
        num++;//12
        --num;//11
        num--;//10
        System.out.println(num);//10

        //混合使用有区别,理解方式一
        int i = 10;
        //1.temp = i(10)  2.i = i(10)+1  3.i = temp(10)
        i = i++;
        System.out.println(i);//10

        //1.j = j+1  2.temp = 11  3.j = temp(11)
        int j = 10;
        j = ++j;
        System.out.println(j);//11

        //混合使用有区别,理解方式二
        int num2 = 10;
        int num3 = 20 + --num2;//前--,num2直接减1后等于9
        int num4 = 20 + num2--;//后--,此时的num2为9先进行运算,运算完后在减1等于8
        System.out.println(num3);//29
        System.out.println(num4);//29
        System.out.println(num2);//8
    }
}
